retire TopoMapPro Places File format (#711)
authortsteven4 <13596209+tsteven4@users.noreply.github.com>
Tue, 2 Nov 2021 17:30:10 +0000 (11:30 -0600)
committerGitHub <noreply@github.com>
Tue, 2 Nov 2021 17:30:10 +0000 (11:30 -0600)
* retire TopoMapPro Places File format.

* remove topomap pro reference files.

* catch serialization references up with tmpro retirement.

14 files changed:
CMakeLists.txt
GPSBabel.pro
deprecated/tmpro.cc [new file with mode: 0644]
reference/format0.txt
reference/format1.txt
reference/format2.txt
reference/format3.txt
reference/help.txt
reference/topomappro.txt [deleted file]
testo.d/deprecated/tmpro.test [new file with mode: 0644]
testo.d/tmpro.test [deleted file]
tmpro.cc [deleted file]
vecs.h
xmldoc/formats/tmpro.xml [deleted file]

index cfaf4a65cbb3a8ba7c2ebf4ce515e991b7c7709a..2c1dfbf75851886600dbfd8840750ee0aed44b6d 100644 (file)
@@ -35,7 +35,7 @@ set(MINIMAL_FMTS
 
 set(ALL_FMTS
   ${MINIMAL_FMTS} gtm.cc gpsutil.cc pcx.cc
-  skytraq.cc holux.cc tmpro.cc tpg.cc tpo.cc
+  skytraq.cc holux.cc tpg.cc tpo.cc
   xcsv.cc tiger.cc easygps.cc
   saroute.cc navicache.cc delgpl.cc
   ozi.cc text.cc html.cc
index 1bbb8d0cfdec9a875bb6ef372ec317afe49b92e1..0bd2a2696b5f8126c2cda61613d7b970d93b91fe 100644 (file)
@@ -60,7 +60,7 @@ MINIMAL_FMTS =  magproto.cc explorist_ini.cc gpx.cc geo.cc mapsend.cc garmin.cc
                kml.cc wbt-200.cc
 
 ALL_FMTS=$$MINIMAL_FMTS gtm.cc gpsutil.cc pcx.cc \
-        skytraq.cc holux.cc tmpro.cc tpg.cc tpo.cc \
+        skytraq.cc holux.cc tpg.cc tpo.cc \
         xcsv.cc tiger.cc easygps.cc \
         saroute.cc navicache.cc delgpl.cc \
         ozi.cc text.cc html.cc \
diff --git a/deprecated/tmpro.cc b/deprecated/tmpro.cc
new file mode 100644 (file)
index 0000000..f004234
--- /dev/null
@@ -0,0 +1,261 @@
+/*
+    ----------------------------------------------------------------------------------------
+    TopoMapPro (.txt)
+    New Zealand Mapping Software
+    www.topomappro.com
+    (Tab Delimited text file)
+
+    Based on gpsbabel .MXF format by Alex Mottram (geo_alexm at cox-internet.com)
+    Tweaked for TopoMapPro by Nick Heaphy (nick at automata dot co dot nz)
+
+    Group sID sDescription fLat fLong fEasting fNorthing fAlt iColour iSymbol sHyperLink
+    25    6   80           8    8     8        8         8    4       4       128  (lengths)
+
+    Based on the specifications found in the TopoMapPro documentation available from website
+    ----------------------------------------------------------------------------------------
+
+    Copyright (C) 2002-2014 Robert Lipe, robertlipe+source@gpsbabel.org
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+ */
+
+#include "defs.h"
+#include "cet_util.h"
+#include "csv_util.h"
+#include <cstdlib>
+
+#define MYNAME "TMPro"
+
+static gbfile* file_in, *file_out;
+static short_handle mkshort_handle;
+
+static void
+rd_init(const QString& fname)
+{
+  file_in = gbfopen(fname, "rb", MYNAME);
+}
+
+static void
+rd_deinit()
+{
+  gbfclose(file_in);
+}
+
+static void
+wr_init(const QString& fname)
+{
+  file_out = gbfopen(fname, "w", MYNAME);
+}
+
+static void
+wr_deinit()
+{
+  gbfclose(file_out);
+}
+
+static void
+data_read()
+{
+  char* buff;
+  int linecount = 0;
+
+  while ((buff = gbfgetstr(file_in))) {
+    if ((linecount++ == 0) && file_in->unicode) {
+      cet_convert_init(CET_CHARSET_UTF8, 1);
+    }
+
+    /* skip the line if it contains "sHyperLink" as it is a header (I hope :) */
+    if ((strlen(buff)) && (strstr(buff, "sHyperLink") == nullptr)) {
+
+      auto* wpt_tmp = new Waypoint;
+
+      /* data delimited by tabs, not enclosed in quotes.  */
+      char* s = buff;
+      s = csv_lineparse(s, "\t", "", linecount);
+
+      int i = 0;
+      while (s) {
+        switch (i) {
+
+          /* Group sID sDescription fLat fLong fEasting fNorthing fAlt iColour iSymbol sHyperLink */
+          /*   0    1       2         3    4      5         6       7    8       9       10       */
+
+        case 0:
+          /* ignore: group  */
+          break;
+        case 1:
+          wpt_tmp->shortname = csv_stringtrim(s, "");
+          break;
+        case 2:
+          /* Description is not a TopoMapPro format requirement.
+             If we assign "" then .loc/.gpx will generate empty XML tags :(
+          */
+          wpt_tmp->description = csv_stringtrim(s, "");
+          break;
+        case 3:
+          wpt_tmp->latitude = atof(s);
+          break;
+        case 4:
+          wpt_tmp->longitude = atof(s);
+          break;
+        case 5:
+          /* ignore: NZMapGrid Easting  */
+          break;
+        case 6:
+          /* ignore: NZMapGrid Northing  */
+          break;
+        case 7:
+          wpt_tmp->altitude = atof(s);
+          break;
+        case 8:
+          /* ignore: color  */
+          break;
+        case 9:
+          /* ignore: symbol (non standard) */
+          break;
+        case 10:
+          /* URL is not a TopoMapPro format requirement.
+             You can store file links etc, we will discard anything that is not http
+             (as URLs in TMPro must start "http:") as other GPS formats probably can't
+             use the TopoMapLinks links.
+             (plus discards length 0 strings (so no empty XML tags))
+          */
+          {
+          QString link = csv_stringtrim(s, "");
+          if (link.contains("http:")) {
+            wpt_tmp->AddUrlLink(link);
+          }
+          }
+          break;
+        default:
+          /* whoa! nelly */
+          warning(MYNAME ": Warning: data fields on line %d exceed specification.\n",
+                  linecount);
+          break;
+        }
+        i++;
+
+        s = csv_lineparse(nullptr, "\t", "\"", linecount);
+      }
+
+      if (i != 11) {
+        delete wpt_tmp;
+        warning(MYNAME ": WARNING - extracted %d fields from line %d. \nData on line ignored.\n",
+                i, linecount);
+      } else {
+        waypt_add(wpt_tmp);
+      }
+
+    } else {
+      /* empty line */
+    }
+
+  }
+}
+
+static void
+tmpro_waypt_pr(const Waypoint* wpt)
+{
+  int icon = 1; /* default to "flag" */
+  int colour = 255; /*default to red */
+  QString shortname;
+  QString description;
+  if ((wpt->shortname.isEmpty()) || (global_opts.synthesize_shortnames)) {
+    if (!wpt->description.isEmpty()) {
+      if (global_opts.synthesize_shortnames) {
+        shortname = mkshort_from_wpt(mkshort_handle, wpt);
+      } else {
+        shortname = csv_stringclean(wpt->description, ",\"");
+      }
+    } else {
+      /* no description available */
+      shortname = "";
+    }
+  } else {
+    shortname = csv_stringclean(wpt->shortname, ",\"");
+  }
+
+  if (wpt->description.isEmpty()) {
+    if (!shortname.isEmpty()) {
+      description = csv_stringclean(shortname, ",\"");
+    } else {
+      description = "";
+    }
+  } else {
+    description = csv_stringclean(wpt->description, ",\"");
+  }
+
+  /* Group sID sDescription fLat fLong fEasting fNorthing fAlt iColour iSymbol sHyperLink */
+  /*   0    1       2         3    4      5         6       7    8       9       10       */
+  /* Number of characters */
+  /*  25    6      80         8    8      8         8       8    4       4       128      */
+
+  const char* l = nullptr;
+  if (wpt->HasUrlLink()) {
+    // Yes, it's lame to allocate/copy here.
+    UrlLink link = wpt->GetUrlLink();
+    l = xstrdup(link.url_);
+  }
+  gbfprintf(file_out, "new\t%.6s\t%.80s\t%08.6f\t%08.6f\t\t\t%.2f\t%d\t%d\t%.128s\n",
+            CSTRc(shortname),
+            CSTRc(description),
+            wpt->latitude,
+            wpt->longitude,
+            wpt->altitude,
+            colour,
+            icon,
+            l ? l : ""
+           );
+
+  if (l) {
+    xfree(l);
+  }
+}
+
+static void
+data_write()
+{
+  /* Short names */
+  if (global_opts.synthesize_shortnames) {
+    mkshort_handle = mkshort_new_handle();
+    setshort_length(mkshort_handle, 6);
+    setshort_whitespace_ok(mkshort_handle, 0);
+    setshort_badchars(mkshort_handle, "\",");
+  }
+
+  /* Write file header */
+  gbfprintf(file_out, "Group\tsID\tsDescription\tfLat\tfLong\tfEasting\tfNorthing\tfAlt\tiColour\tiSymbol\tsHyperLink\n");
+
+  waypt_disp_all(tmpro_waypt_pr);
+  mkshort_del_handle(&mkshort_handle);
+}
+
+ff_vecs_t tmpro_vecs = {
+  ff_type_file,
+  FF_CAP_RW_WPT,
+  rd_init,
+  wr_init,
+  rd_deinit,
+  wr_deinit,
+  data_read,
+  data_write,
+  nullptr,
+  nullptr,
+  CET_CHARSET_ASCII, 0 /* CET-REVIEW */
+  , NULL_POS_OPS,
+  nullptr
+};
+
index d2a88d5defe073c930e0a23567e0707c3d56cc2c..bbb7aa5e1e06aa228da971adec9afec0048134a3 100644 (file)
@@ -135,7 +135,6 @@ tomtom_itn  itn     TomTom Itineraries (.itn)
 tomtom_itn_places      itn     TomTom Places Itineraries (.itn)
 tomtom_asc     asc     TomTom POI file (.asc)
 tomtom ov2     TomTom POI file (.ov2)
-tmpro  tmpro   TopoMapPro Places File
 dmtlog trl     TrackLogs digital mapping (.trl)
 tiger          U.S. Census Bureau Tiger Mapping Service
 unicsv         Universal csv with field structure in first line
index 263a3744b4e5c5088d02e369fe40ea244ed60e4f..ef7198e1a13fa4f753f07417e6310e2cd49af2cd 100644 (file)
@@ -141,7 +141,6 @@ file        tomtom_itn      itn     TomTom Itineraries (.itn)
 file   tomtom_itn_places       itn     TomTom Places Itineraries (.itn)
 file   tomtom_asc      asc     TomTom POI file (.asc)
 file   tomtom  ov2     TomTom POI file (.ov2)
-file   tmpro   tmpro   TopoMapPro Places File
 file   dmtlog  trl     TrackLogs digital mapping (.trl)
 file   tiger           U.S. Census Bureau Tiger Mapping Service
 file   unicsv          Universal csv with field structure in first line
index 605898a76bca0bd569d54976a2d8b38cdf620945..7250f49b7d5a24c4505963ebf8f9f3cacc5bf01b 100644 (file)
@@ -141,7 +141,6 @@ file        ----rw  tomtom_itn      itn     TomTom Itineraries (.itn)
 file   ----rw  tomtom_itn_places       itn     TomTom Places Itineraries (.itn)
 file   rw----  tomtom_asc      asc     TomTom POI file (.asc)
 file   rw----  tomtom  ov2     TomTom POI file (.ov2)
-file   rw----  tmpro   tmpro   TopoMapPro Places File
 file   rwrw--  dmtlog  trl     TrackLogs digital mapping (.trl)
 file   rw----  tiger           U.S. Census Bureau Tiger Mapping Service
 file   rwrwrw  unicsv          Universal csv with field structure in first line
index 3c4e41df3ea9b814f990e30665e822986a78f25f..d59c5246f00bd80e29d7fb7e084301433024d00a 100644 (file)
@@ -1332,8 +1332,6 @@ option    tomtom_asc      datum   GPS datum (def. WGS 84) string                          https://www.gpsbabel.o
 
 file   rw----  tomtom  ov2     TomTom POI file (.ov2)  tomtom
        https://www.gpsbabel.org/WEB_DOC_DIR/fmt_tomtom.html
-file   rw----  tmpro   tmpro   TopoMapPro Places File  tmpro
-       https://www.gpsbabel.org/WEB_DOC_DIR/fmt_tmpro.html
 file   rwrw--  dmtlog  trl     TrackLogs digital mapping (.trl)        dmtlog
        https://www.gpsbabel.org/WEB_DOC_DIR/fmt_dmtlog.html
 option dmtlog  index   Index of track (if more than one in source)     integer 1       1               https://www.gpsbabel.org/WEB_DOC_DIR/fmt_dmtlog.html#fmt_dmtlog_o_index
index 2eac8ef37b36f08316029fb6e6f972cffef82302..af672decc04ccd229969f9ef4a6055b92e6d481f 100644 (file)
@@ -664,7 +664,6 @@ File Types (-i and -o options):
          prefer_shortnames     (0/1) Use shortname instead of description 
          datum                 GPS datum (def. WGS 84) 
        tomtom                TomTom POI file (.ov2)
-       tmpro                 TopoMapPro Places File
        dmtlog                TrackLogs digital mapping (.trl)
          index                 Index of track (if more than one in source) 
        tiger                 U.S. Census Bureau Tiger Mapping Service
diff --git a/reference/topomappro.txt b/reference/topomappro.txt
deleted file mode 100644 (file)
index 5837da3..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-Group  sID     sDescription    fLat    fLong   fEasting        fNorthing       fAlt    iColour iSymbol sHyperLink
-new    GCEBB   Mountain Bike Heaven by susy1313        35.972033       -87.134700                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=3771
-new    GC1A37  The Troll by a182pilot & Family 36.090683       -86.679550                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=6711
-new    GC1C2B  Dive Bomber by JoGPS & family   35.996267       -86.620117                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=7211
-new    GC25A9  FOSTER by JoGPS & Family        36.038483       -86.648617                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=9641
-new    GC2723  Logan Lighthouse by JoGps & Family      36.112183       -86.741767                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=10019
-new    GC2B71  Ganier Cache by Susy1313        36.064083       -86.790517                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=11121
-new    GC309F  Shy's Hill by FireFighterEng33  36.087767       -86.809733                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=12447
-new    GC317A  GittyUp by JoGPS / Warner Parks 36.057500       -86.892000                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=12666
-new    GC317D  Inlighting by JoGPS / Warner Parks      36.082800       -86.867283                      0.00    255     1       http://www.geocaching.com/seek/cache_details.asp?ID=12669
diff --git a/testo.d/deprecated/tmpro.test b/testo.d/deprecated/tmpro.test
new file mode 100644 (file)
index 0000000..0a6407e
--- /dev/null
@@ -0,0 +1,6 @@
+# tmpro (TopoMapPro Places) file format
+rm -f ${TMPDIR}/topomappro.txt ${TMPDIR}/mxf.mxf
+gpsbabel -i tmpro -f ${REFERENCE}/topomappro.txt -o tmpro -F ${TMPDIR}/tmp.txt
+gpsbabel -i tmpro -f ${TMPDIR}/tmp.txt -o tmpro -F ${TMPDIR}/topomappro.txt
+compare ${TMPDIR}/topomappro.txt ${REFERENCE}
+
diff --git a/testo.d/tmpro.test b/testo.d/tmpro.test
deleted file mode 100644 (file)
index 0a6407e..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# tmpro (TopoMapPro Places) file format
-rm -f ${TMPDIR}/topomappro.txt ${TMPDIR}/mxf.mxf
-gpsbabel -i tmpro -f ${REFERENCE}/topomappro.txt -o tmpro -F ${TMPDIR}/tmp.txt
-gpsbabel -i tmpro -f ${TMPDIR}/tmp.txt -o tmpro -F ${TMPDIR}/topomappro.txt
-compare ${TMPDIR}/topomappro.txt ${REFERENCE}
-
diff --git a/tmpro.cc b/tmpro.cc
deleted file mode 100644 (file)
index f004234..0000000
--- a/tmpro.cc
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
-    ----------------------------------------------------------------------------------------
-    TopoMapPro (.txt)
-    New Zealand Mapping Software
-    www.topomappro.com
-    (Tab Delimited text file)
-
-    Based on gpsbabel .MXF format by Alex Mottram (geo_alexm at cox-internet.com)
-    Tweaked for TopoMapPro by Nick Heaphy (nick at automata dot co dot nz)
-
-    Group sID sDescription fLat fLong fEasting fNorthing fAlt iColour iSymbol sHyperLink
-    25    6   80           8    8     8        8         8    4       4       128  (lengths)
-
-    Based on the specifications found in the TopoMapPro documentation available from website
-    ----------------------------------------------------------------------------------------
-
-    Copyright (C) 2002-2014 Robert Lipe, robertlipe+source@gpsbabel.org
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-
- */
-
-#include "defs.h"
-#include "cet_util.h"
-#include "csv_util.h"
-#include <cstdlib>
-
-#define MYNAME "TMPro"
-
-static gbfile* file_in, *file_out;
-static short_handle mkshort_handle;
-
-static void
-rd_init(const QString& fname)
-{
-  file_in = gbfopen(fname, "rb", MYNAME);
-}
-
-static void
-rd_deinit()
-{
-  gbfclose(file_in);
-}
-
-static void
-wr_init(const QString& fname)
-{
-  file_out = gbfopen(fname, "w", MYNAME);
-}
-
-static void
-wr_deinit()
-{
-  gbfclose(file_out);
-}
-
-static void
-data_read()
-{
-  char* buff;
-  int linecount = 0;
-
-  while ((buff = gbfgetstr(file_in))) {
-    if ((linecount++ == 0) && file_in->unicode) {
-      cet_convert_init(CET_CHARSET_UTF8, 1);
-    }
-
-    /* skip the line if it contains "sHyperLink" as it is a header (I hope :) */
-    if ((strlen(buff)) && (strstr(buff, "sHyperLink") == nullptr)) {
-
-      auto* wpt_tmp = new Waypoint;
-
-      /* data delimited by tabs, not enclosed in quotes.  */
-      char* s = buff;
-      s = csv_lineparse(s, "\t", "", linecount);
-
-      int i = 0;
-      while (s) {
-        switch (i) {
-
-          /* Group sID sDescription fLat fLong fEasting fNorthing fAlt iColour iSymbol sHyperLink */
-          /*   0    1       2         3    4      5         6       7    8       9       10       */
-
-        case 0:
-          /* ignore: group  */
-          break;
-        case 1:
-          wpt_tmp->shortname = csv_stringtrim(s, "");
-          break;
-        case 2:
-          /* Description is not a TopoMapPro format requirement.
-             If we assign "" then .loc/.gpx will generate empty XML tags :(
-          */
-          wpt_tmp->description = csv_stringtrim(s, "");
-          break;
-        case 3:
-          wpt_tmp->latitude = atof(s);
-          break;
-        case 4:
-          wpt_tmp->longitude = atof(s);
-          break;
-        case 5:
-          /* ignore: NZMapGrid Easting  */
-          break;
-        case 6:
-          /* ignore: NZMapGrid Northing  */
-          break;
-        case 7:
-          wpt_tmp->altitude = atof(s);
-          break;
-        case 8:
-          /* ignore: color  */
-          break;
-        case 9:
-          /* ignore: symbol (non standard) */
-          break;
-        case 10:
-          /* URL is not a TopoMapPro format requirement.
-             You can store file links etc, we will discard anything that is not http
-             (as URLs in TMPro must start "http:") as other GPS formats probably can't
-             use the TopoMapLinks links.
-             (plus discards length 0 strings (so no empty XML tags))
-          */
-          {
-          QString link = csv_stringtrim(s, "");
-          if (link.contains("http:")) {
-            wpt_tmp->AddUrlLink(link);
-          }
-          }
-          break;
-        default:
-          /* whoa! nelly */
-          warning(MYNAME ": Warning: data fields on line %d exceed specification.\n",
-                  linecount);
-          break;
-        }
-        i++;
-
-        s = csv_lineparse(nullptr, "\t", "\"", linecount);
-      }
-
-      if (i != 11) {
-        delete wpt_tmp;
-        warning(MYNAME ": WARNING - extracted %d fields from line %d. \nData on line ignored.\n",
-                i, linecount);
-      } else {
-        waypt_add(wpt_tmp);
-      }
-
-    } else {
-      /* empty line */
-    }
-
-  }
-}
-
-static void
-tmpro_waypt_pr(const Waypoint* wpt)
-{
-  int icon = 1; /* default to "flag" */
-  int colour = 255; /*default to red */
-  QString shortname;
-  QString description;
-  if ((wpt->shortname.isEmpty()) || (global_opts.synthesize_shortnames)) {
-    if (!wpt->description.isEmpty()) {
-      if (global_opts.synthesize_shortnames) {
-        shortname = mkshort_from_wpt(mkshort_handle, wpt);
-      } else {
-        shortname = csv_stringclean(wpt->description, ",\"");
-      }
-    } else {
-      /* no description available */
-      shortname = "";
-    }
-  } else {
-    shortname = csv_stringclean(wpt->shortname, ",\"");
-  }
-
-  if (wpt->description.isEmpty()) {
-    if (!shortname.isEmpty()) {
-      description = csv_stringclean(shortname, ",\"");
-    } else {
-      description = "";
-    }
-  } else {
-    description = csv_stringclean(wpt->description, ",\"");
-  }
-
-  /* Group sID sDescription fLat fLong fEasting fNorthing fAlt iColour iSymbol sHyperLink */
-  /*   0    1       2         3    4      5         6       7    8       9       10       */
-  /* Number of characters */
-  /*  25    6      80         8    8      8         8       8    4       4       128      */
-
-  const char* l = nullptr;
-  if (wpt->HasUrlLink()) {
-    // Yes, it's lame to allocate/copy here.
-    UrlLink link = wpt->GetUrlLink();
-    l = xstrdup(link.url_);
-  }
-  gbfprintf(file_out, "new\t%.6s\t%.80s\t%08.6f\t%08.6f\t\t\t%.2f\t%d\t%d\t%.128s\n",
-            CSTRc(shortname),
-            CSTRc(description),
-            wpt->latitude,
-            wpt->longitude,
-            wpt->altitude,
-            colour,
-            icon,
-            l ? l : ""
-           );
-
-  if (l) {
-    xfree(l);
-  }
-}
-
-static void
-data_write()
-{
-  /* Short names */
-  if (global_opts.synthesize_shortnames) {
-    mkshort_handle = mkshort_new_handle();
-    setshort_length(mkshort_handle, 6);
-    setshort_whitespace_ok(mkshort_handle, 0);
-    setshort_badchars(mkshort_handle, "\",");
-  }
-
-  /* Write file header */
-  gbfprintf(file_out, "Group\tsID\tsDescription\tfLat\tfLong\tfEasting\tfNorthing\tfAlt\tiColour\tiSymbol\tsHyperLink\n");
-
-  waypt_disp_all(tmpro_waypt_pr);
-  mkshort_del_handle(&mkshort_handle);
-}
-
-ff_vecs_t tmpro_vecs = {
-  ff_type_file,
-  FF_CAP_RW_WPT,
-  rd_init,
-  wr_init,
-  rd_deinit,
-  wr_deinit,
-  data_read,
-  data_write,
-  nullptr,
-  nullptr,
-  CET_CHARSET_ASCII, 0 /* CET-REVIEW */
-  , NULL_POS_OPS,
-  nullptr
-};
-
diff --git a/vecs.h b/vecs.h
index 67eaed96b058d340508ceb08c91ede41e851c9ca..86a6f1d081248ddd35f0e09907241cdfd04fd27e 100644 (file)
--- a/vecs.h
+++ b/vecs.h
@@ -66,7 +66,6 @@ extern ff_vecs_t holux_vecs;
 extern ff_vecs_t tpg_vecs;
 extern ff_vecs_t tpo2_vecs;
 extern ff_vecs_t tpo3_vecs;
-extern ff_vecs_t tmpro_vecs;
 extern ff_vecs_t tiger_vecs;
 extern ff_vecs_t easygps_vecs;
 extern ff_vecs_t saroute_vecs;
@@ -277,7 +276,6 @@ private:
   LegacyFormat tpg_fmt {tpg_vecs};
   LegacyFormat tpo2_fmt {tpo2_vecs};
   LegacyFormat tpo3_fmt {tpo3_vecs};
-  LegacyFormat tmpro_fmt {tmpro_vecs};
   LegacyFormat tiger_fmt {tiger_vecs};
   LegacyFormat easygps_fmt {easygps_vecs};
   LegacyFormat saroute_fmt {saroute_vecs};
@@ -534,13 +532,6 @@ private:
       "tpo",
       nullptr,
     },
-    {
-      &tmpro_fmt,
-      "tmpro",
-      "TopoMapPro Places File",
-      "tmpro",
-      nullptr,
-    },
     {
       &tiger_fmt,
       "tiger",
diff --git a/xmldoc/formats/tmpro.xml b/xmldoc/formats/tmpro.xml
deleted file mode 100644 (file)
index 10e4be1..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-      
-      
-      <para>Reads and writes places files for
-use in <ulink url="http://www.topomappro.com">TopoMapPro places files</ulink>.  As this file
-type can store links other than web links, anything that is not a http
-url will be discarded.  Note that this does not do datum conversions,
-so if your input file does not have WGS84/NZGD2000 data, your output
-file won't either. The color of waypoint icons defaults to red.</para>
-